The prior art discloses a variety of computer networks. The IBM System Journal, Volume 22, Number 4, 1983 includes a series of articles devoted to a review of the IBM System Network Architecture (SNA). On page 345 of that publication a network is defined as "a configuration of terminals, controllers, and processors and the links that connect them. When such a configuration supports user applications involving data processing and information exchange and conforms to the specifications of the System Network Architecture it is called an SNA network. Essentially SNA defines logical entities that are related to the physical entities in a network and specifies the rules for interactions among these logical entities.
The logical entities of an SNA network include network addressable units and the path control network that connects them. Network addressable units communicate with one another using logical connections called "sessions." The three types of Network Addressable Units (NAUs) are the Logical Unit (LU), the Physical Unit (PU), and the System Services Control Point (SSCP) which are defined as follows;
Logical Unit (LU). An LU is a port through which end users may access the SNA network. An end user uses an LU to communicate with another end user and to request services of a System Services Control Point (SSCP).
Physical Unit (PU). A PU is a component that manages the resources of a node in cooperation with an SSCP.
System Services Control Point (SSCP). This is a focal point for configuration management, problem determination and directory services for end users. SSCPs may have sessions with LUs and PUs. When such a session occurs, the LU or PU is in the domain of the SSCP. In addition to sessions with LUs and PUs, SSCPs may also communicate with each other to coordinate the initiation and the termination of sessions between Logical Units and in different domains."
From the hardware standpoint, a simple network comprises a host system having a processing unit and a plurality of remote terminals that are assigned to individual users. The remote terminals are selectively connectable to the host system through one or more communication links. These links may comprise merely a coaxial cable, a dedicated telephone line, or in some cases, a satellite communication link.
The host processing unit most always has an operating system which supports the creation of a large number of virtual machines or the functional equivalents, each of which is assigned, on request, to an end user. A virtual machine processes tasks for the assigned end user, by time sharing the host processor hardware of the host system. Some hosts systems may include more than one hardware processor so that true simultaneous processing occurs at the host since a plurality of processors are running in parallel. More often, there is merely one hardware processor that "concurrently" runs data processing tasks for the virtual machines by a time sharing technique. This is transparent to the end users at the terminals.
In prior art networking systems, a user of the system is assigned a USERID by the system administrator at the time the user is first authorized to use the system. The user is also assigned a Password at that time, which is required to be presented to the system each time the User "Logs On" to the system. The system administrator has entered the user's USERID, and Password into the system. If the information that is provided by the Log On process does not match the information entered into the system by the administrator, the user in not allowed access to the system. If the information is correct then the system allows access. As part of the Log On process the User is permanently assigned the exclusive use of a Virtual Machine by the system until a Log Off process is completed. The name given to the assigned Virtual machine is the USERID of the user that is Logging On. The system address of the terminal being used by the user for the Log On process is also transmitted to the assigned virtual machine and stored as part of the Log On process. Any subsequent communications intended for the user, require only the user's USERID as part of the massage address. The message is transferred to and processed by the assigned virtual machine and sent to the user at the terminal address stored by the dedicated virtual machine at the time of Log On.
This method of assigning a user's USERID as the name of the virtual machine that has been assigned to that user and storing the user's current terminal address in the assigned virtual machine, avoids the address conversion problem of converting USERIDs to terminal addresses in order to deliver a message addressed to a specified USERlD . With this prior art approach the system only requires the USERID of the intended recipient in order to deliver a message. When a message is received for a user it is stored and a check is made to determine if the message can be delivered immediately. If the user is on line at the time the system receives the message, the system will indicate this after scanning a relative short list of virtual machines that were dedicated to specific users at Log On, and proceed accordingly to deliver the message by causing the one dedicated virtual machine having the name USERID to transmit the message to the user's current terminal address stored by that dedicated virtual machine. Otherwise, as part of the Log On process, the system checks the list of undeliverable messages for messages addressed to the user and advises the newly signed on user that there is a waiting message stored in the system.
Two general types of terminals are employed in data processing networks. The first is referred to as a "dumb terminal" in that it comprises merely a keyboard and a display device and little or no processing capability other than that required to make a connection with the host system. The second type of terminal is referred to as an Intelligent Work Station (IWS) and is provided with its own processor unit, Operating System and supporting peripheral devices. The terms IWS and Personal Computer (PC) are often used interchangeably. With the ready availability of PCs having very attractive price performance characteristics, most new networks are implemented with IWS type terminals and many of the older networks are being modified with the replacement of dumb terminals with IWS type terminals.
Providing each end user on the network with its own processing capability relieves the host CPU from doing many of the data processing tasks that were previously done at the host. The nature of the tasks that are processed by the host CPU therefore has changed and more sophisticated applications such as electronic mail and electronic calendaring are now implemented on the network under the control of the host system. Both of these applications involve what is referred to as distributed application programs, in that one part of the application program is resident on the host system and another is resident on the IWS terminal.
Many of the current data processing networks are designed in accordance with the IBM SNA architecture which was first described in 1974. Since then various new functions and services have been added. As suggested earlier, SNA networks can be viewed as a plurality of nodes interconnected by data links. At each of these nodes, path control elements send information packets, referred to as Path Information Units (PIUs), between resource managers called Logical Units. The logical connections of the paths are called a session. A transport network for data is therefore defined by the path control elements and the data link control elements.
Nodes can be connected by a plurality of links and comprise a plurality of LUs. Various types of LUs sessions and protocols have been established within the framework of the SNA architecture. There are three general classes of sessions. The first class is unspecified by SNA. The second class involves terminals and the third involves program to program communication. For example LU 6 provides SNA defined inter-program communication protocols which avoids the limitations of terminal LU types such as LU 2 and LU 7. LU 6.2 is referred to as Advanced Program to Program Communication or APPC protocols.
Logical Units are more than message ports. LUs provide operating system services such as program to program communication involving one or more local programs. Each application program views the LUs as a local operating system and the network of loosely coupled LUs connected by sessions as a distributed operating system.
The LU allocates a plurality of resources to its programs, which are dependent on the particular hardware and its configuration. Some of the resources that are made available are remote while others are local, i.e., associated with the same LU as the application program. The sessions are considered local resources at each LU, but are shared between particular LUs.
The control function of an LU is resource allocation. Programs ask one for access to a resource. Sessions which carry messages between LUs or programs running on LUs are considered shared resources. A session is divided so that a plurality of conversations are run serially.
Two LUs connected by a session have a shared responsibility in allocating sessions to application programs for use as "conversations." The application programs are therefore sometimes referred to as "transaction programs."
The successful connection between LUs occurs as a result of a common set of protocols which function first to activate a session between two LUs and second to facilitate the exchange of message data.
The SNA format and protocol reference manual designated SC30-3112, published by the IBM Corporation describes SNA by describing, for example, with programming language declarations, the format of messages that flow between network entities and the programs that generate, manipulate, translate, send and return messages.
The SNA transaction program reference manual for LU 6.2 referred to as GC30-3084, published by the IBM Corporation defines the verbs that describe the functions provided by the implementing products.
Intelligent work stations that are connected to a SNA type network and employ an LU 6.2 protocol to process an application program that is distributed between the IWS and the host system operate efficiently so long as the operating system of the IWS does not run more than one application concurrently at the terminal. However, if the IWS is operating under an operating system such as OS/2, which allows an IWS such an IBM PS/2 personal computer to run concurrent application programs which are distributed, the advantage of concurrent operation on the PS/2 is lost. The advantage is lost because at the host, the separate transactions which are run concurrently at the terminal become serialized. The serialization of the transaction occurs because the host creates only one virtual machine that is permanently associated with the user ID and the specific terminal as long as the session is active.
In order to avoid the serialization at the host, the second application being run at the terminal has to be run with a different user ID in order to have a separate virtual machine established at the host that will be dedicated solely to the second application.
The invention described in the cross-referenced application Ser. No. 07/261,861 is directed to a method to permit two or more distributed application programs that are being run concurrently on one intelligent work station of a data processing network to be executed on separate virtual machines created by the host system to prevent the applications from becoming serialized at the host and to allow each to be run concurrently with the other on both the host and the terminal.
With the method of the cross-referenced application, the host system creates a plurality of virtual machines (VMs) that are brought to a run ready state prior to and in anticipation of being assigned to a distributed application program for processing a task which has been defined in said distributed application program, part of which is resident on the host system and the companion part of which is resident on one of the IWS end user terminals. The pool of run ready VM machines are preferably created automatically at the time that the host system is initialized under the control of a pool manager, which is a program resident on the host system, whose other main function is to assign an idle VM machine from the pool in response to an end user request that identifies a distributed application program, a previously assigned Logical Unit name and a USERID. The VM is assigned only for a period of time required to complete one LU 6.2 conversation. At the end of the conversation the VM machine is returned to the pool for subsequent assignment to another, possibly different, application program and user. The method allows two distributed application programs being executed concurrently on the IWS to run concurrently on the host in two separate virtual machines even though the conversation requests have the same USERID.
While the above system improves the processing of distributed application programs, it requires a new method to determine the current terminal location of an on-line user. It will be recalled that in the prior art method, the dedicated virtual machine that was named the USERID of the current user, was used to store the current terminal address of the user. This dedicated machine has effectively been eliminated and replaced by a pool of virtual machines which are not permanently associated with either one user or one terminal address. Since virtual machines from the pool are assigned dynamically to process relatively short LU 6.2 type conversations between the host and the terminals, and then returned to the pool, it is not practical to use the prior art method of determining the current terminal address of an active user by naming an assigned virtual machine from the pool with the USERID of the user and storing the user's current terminal address in this virtual machine.
The method of the present invention, allows the current terminal address of a specific user in an SNA system employing a pool of virtual machines organized according to the teaching of the above Cross-referenced applications to be determined only after the intelligent workstation terminal user has decided that the host system or other system users may communicate to the user's intelligent workstation.